Qt.include("content/jsonpath.js")

// json对象转化为字符串
// 注意，不能命名为toString，会冲突
function jsonToStr(json) {
    return JSON.stringify(json);
}

// 用递归输出json text（有问题的，需要优化）
function toStr2(obj){
    var txt = '';
    for (var k in obj){
        if(typeof k === "object") {
            txt += toStr2(obj[x]);
        }
        else{
            txt += k + ":" + obj[x];
        }
        txt += ' ';
    }
    return txt;
}


// 字符串转化为json对象
function toJson(text){
    return JSON.parse(text);
}

// json数组字符串转化为json数组
function jsonarrayStrToArray(jsonStr){
    //return JSON.eval('(' + jsonStr + ')');
    return JSON.parse(jsonStr);
}

// json对象字符串转化为json对象
function jsonobjStrToObject(jsonStr){
    return JSON.parse(jsonStr);
}

//json数组解析特定的对象
function jsonarrayToObject(array,query){
    var jsonObj = jsonarrayStrToArray(array)
    if(query !== "")
        jsonObj = jsonPath(jsonObj,query)
    return jsonObj
}

//从json数组对象中提取其元素
function  jsonArrayToElement(array,index,query){
    return array[index][query];
}

//修改json对象的值
function setJsonObjectValue(obj,index,value){
    obj[index] = value
}


//json对象创建元素
function creatJsonElement(prop,val){
    if(typeof val === "undefined") {
        delete str1[prop];
    }else {
        // 添加 或 修改
        str1[prop] = val;
    }
}

// json对象转化为ListModel对象
function toListModel(json, parent){
    var model = Qt.createQmlObject('import QtQuick 2.2; ListModel{}', parent);
    model.append(json);
    return model;
}

//写入一个对象到json数组
function writeObjToArray(array,index,value){
    obj[index] = value
}

//将一个list写入到json对象
function listToObj(list,target){
    var index = 0
    var jsonObj
    for ( var key in target ) {
        jsonObj[key] = list.getIndex(index)
        index ++
    }
    return jsonObj
}

//替换json数组中的一个对象
function  replaceObj(index,target,value){
    for ( var key in target ) {
        if(key === index){
            objectArray[key] = value
            break
        }
    }
}

//将一个QStringList写入到json数组字符串
//index:对象所在的索引
function writeQStringList(list,target,json,key,index){
    jsonArrayToElement(target,index,key) = listToObj(list,target)
}

//通过jsonPath解析json数组,参数:query
function parseJSONString(jsonString, jsonPathQuery) {
    var objectArray = JSON.parse(jsonString);
    if ( jsonPathQuery !== "" )
        objectArray = jsonPath(objectArray, jsonPathQuery);

    return objectArray;
}

